package second_assignment;

/**
 * Common definitions for the second assignment part of the project.
 * 
 * @author Peretz Oded, Castel Maayan, Farchy Ofir.
 */
public class Consts_2nd {

	// the capacity of a single disk (in files)
	public final static int DiskCapacity = 1200;
	// root cluster's disk capacity
	public final static int RootDiskCount = 90;
	// regular cluster's disk capacity
	public final static int ClusterDiskCount = 10;
	// number of regular (non-root) clusters
	public final static int NumberOfNonRootClusters = 9;
	// amount of streamlines from each disk
	public final static int BaseStreamLineCount = 100;
	// the maximal amount of copies a single movie can have
	public final static int MaxMovieCopies = (ClusterDiskCount
			* NumberOfNonRootClusters + RootDiskCount);
	// the total system capacity (in files)
	public final static int SystemCapacity = (ClusterDiskCount
			* NumberOfNonRootClusters + RootDiskCount)
			* DiskCapacity;
	public final static int ePB_UNINIT = -1;
	public final static int eINVALID = -2;

	// Rho - the distance factor for number of stream lines.
	public final static double Rho = 0.1;
	// Lambda - the exponential parameter for client arrivals.
	public final static double Lambda = 4.4;
	
	// Simulation Constants:
	public final static int MinutesPerDay = 1440;
	public final static int SecondsPerDay = 60 * MinutesPerDay;
	// the movie length (time from client arrival to departure)
	public final static int ClientStayInSeconds = 60 * 60;
	// the time limit before EOD in which there are no client arrivals
	public final static int EndOfDayLimitInSeconds = 90 * 60;
	public final static int ArrivalsOkInSeconds = SecondsPerDay - EndOfDayLimitInSeconds;
	
	// Default Values.
	public final static int M_Library = 30000;
	public final static int M_Recorded = 50000;
	public final static int M_RecentlyBroadcast = 20000;

	public final static double p1 = 0.3;
	public final static double p2 = 0.3;
	public final static double p3 = 0.4;

	public final static int a1 = 80;
	public final static int a2 = 80;
	public final static int a3 = 90;
	
	public static class MovieIndex{
		public String movieName;
		public int movieIndex;
		public MovieIndex(String name, int index){
			movieName = name;
			movieIndex = index;
		}
	}
}
